//
// Created by ktsq on 2021/8/6.
//

#ifndef CSUGL_APPLICATION_H
#define CSUGL_APPLICATION_H

#include "core.h"

namespace csugl {

    /* 
    窗体属性类
    */
    struct WindowProps;

    /*
    窗体类，依赖于Application
    */
    class Window;
    /*
    主应用类，一个应用仅应该有一个Application类，所以应该与singleton工具类搭配使用
    */
    class Application {
    public:
        explicit Application();

        /*
        获取应用的主窗体
        */
        Window &GetWindow() const;

        bool isOpen() const;

        void close() { isRunning = false; }

    private:
        bool isRunning;
        Scope<Window> window;
    };

}


#endif //CSUGL_APPLICATION_H
